package pl.edu.agh.nn.layer;

import java.util.List;

import pl.edu.agh.nn.functions.IActivationFunction;
import pl.edu.agh.nn.neuron.AbstractNeuron;

public abstract class AbstractLayer<ANeuron extends AbstractNeuron<?>> implements ILayer {

	protected IActivationFunction activation;
	protected int neuronCount;
	protected List<ANeuron> neurons;
	protected ILayer previousLayer;

	public IActivationFunction getActivation() {
		return activation;
	}

	public int getNeuronCount() {
		return neuronCount;
	}

	@Override
	public List<ANeuron> getNeurons() {
		return neurons;
	}

	@Override
	public ILayer getPreviousLayer() {
		return previousLayer;
	}

	public void setActivation(IActivationFunction activation) {
		this.activation = activation;
	}

	public void setNeuronCount(int neuronCount) {
		this.neuronCount = neuronCount;
	}

	public void setNeurons(List<ANeuron> neurons) {
		this.neurons = neurons;
	}

	@Override
	public void setPreviousLayer(ILayer layer) {
		this.previousLayer = layer;
	}

}
